﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Data;
using TDT_Project.classes;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using TDT_Project.classes;
using System.Web.Security;

namespace TDT_Project.Controller
{
    public partial class uc_User_Giao_Vien : System.Web.UI.UserControl
    {
        public int i = 1;
        private string pass_update = "";
        private DataSet ds_update = new DataSet();
        cls_config config = new cls_config();
        cls_user_dang_nhap u = new cls_user_dang_nhap();
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                Session.Clear();
                load_GiangVien();
                LayDS_Typenews();
                lbMessage.Text = "";
                if (this.Page.Request.QueryString["TN"] == "edit")
                {
                    if (this.Page.Request.QueryString["ID"] != null && this.Page.Request.QueryString["ID"].ToString() != "")
                    {
                        string ID = Request.QueryString["ID"].ToString();
                        cboGIANGVIEN.Enabled = false;
                        txtUSER.Enabled = false;
                        txtPASS.Enabled = false;
                        txtXACNHAN.Enabled = false;
                        Check_news(ID);
                    }
                    else
                    {

                    }
                }
                else if (this.Page.Request.QueryString["TN"] == "delete")
                {
                    if (this.Page.Request.QueryString["ID"] != null && this.Page.Request.QueryString["ID"].ToString() != "")
                    {
                        try
                        {
                            string ID = Request.QueryString["ID"].ToString();
                            u.TOAN_Delete_user_login_web(ID);
                            lbMessage.Text = "Xóa thành công";
                        }
                        catch
                        {
                            Page.ClientScript.RegisterStartupScript(this.GetType(), "Lưu ý", "<script>confirm('Lỗi đã xảy ra, Vui lòng thử lại!')</script>");
                        }
                    }
                    else
                    {
                    }
                }
                LayDS_Typenews();
            }
        }

        private void LayDS_Typenews()
        {
            DataSet ds = u.TOAN_getall_user_login_web();
            if (ds.Tables[0].Rows.Count <= 10)
            {
                gvQC.AllowPaging = false;
            }
            else
            {
                gvQC.PageSize = 10;
                gvQC.AllowPaging = true;
            }
            gvQC.DataSource = ds;
            gvQC.DataBind();
        }
        public static byte[] encryptData(string pass)
        {
            System.Security.Cryptography.MD5CryptoServiceProvider md5Hasher = new System.Security.Cryptography.MD5CryptoServiceProvider();
            byte[] hashedBytes;
            System.Text.UTF8Encoding encoder = new System.Text.UTF8Encoding();
            hashedBytes = md5Hasher.ComputeHash(encoder.GetBytes(pass));
            return hashedBytes;
        }

        private void Check_news(int id)
        {
            ds_update = u.TOAN_getall_user_login_web_ID(id);
            if (ds_update!=null && ds_update.Tables[0].Rows.Count > 0)
            {
                cboGIANGVIEN.SelectedValue = ds_update.Tables[0].Rows[0]["GiaoVienID"].ToString();
                txtUSER.Text = ds_update.Tables[0].Rows[0]["Username"].ToString();
                if (ds_update.Tables[0].Rows[0]["pass"].ToString() != "")
                {
                    txtPASS.Text = ds_update.Tables[0].Rows[0]["pass"].ToString();
                }
                if (ds_update.Tables[0].Rows[0]["BiVoHieu"].ToString().Equals("1") == true)
                {
                    chkIS_LOGIN.Checked = true;
                }
                else
                {
                    chkIS_LOGIN.Checked = false;
                }
            }
            else
            {
                Page.ClientScript.RegisterStartupScript(this.GetType(), "Lưu ý", "<script>alert('Tin này không tồn tại, Vui lòng thử lại!'); window.location.href='QuantriBaiViet.aspx'</script>");
            }
        }

        private void load_GiangVien()
        {
            DataSet ds = u.Get_Thong_Tin_Giao_Vien_Toan_123();
            if (ds != null && ds.Tables[0].Rows.Count > 0)
            {
                cboGIANGVIEN.DataSource = ds;
                cboGIANGVIEN.DataTextField = "TenGiaoVien";
                cboGIANGVIEN.DataValueField = "GiaoVien_ID";
                cboGIANGVIEN.DataBind();
            }
        }

        protected void gvQC_PageIndexChanged(object source, DataGridPageChangedEventArgs e)
        {
            gvQC.CurrentPageIndex = e.NewPageIndex;
            i += gvQC.PageSize * gvQC.CurrentPageIndex;
            LayDS_Typenews();
        }

        protected void gvQC_ItemDataBound(object sender, DataGridItemEventArgs e)
        {
            if (e.Item.ItemIndex < 0)
            {
                return;
            }
        }
        protected void btnGhi_Click(object sender, EventArgs e)
        {
            if (this.Page.Request.QueryString["ID"] != null && this.Page.Request.QueryString["ID"].ToString() != "")
            {
                string GiaoVienID = cboGIANGVIEN.SelectedValue;
                string Username = txtUSER.Text.Trim();
                //string pass = txtPASS.Text.Trim();
                u.IDLogin = Request.QueryString["ID"].ToString();
                u.GiaoVienID = GiaoVienID.ToString();
                u.Username = Username.ToString();
                //u.pass = pass.ToString();
                u.LoaiNguoiDung_ID = 0;
                u.spid = 0;
                if (chkIS_LOGIN.Checked == true)
                {
                    u.BiVoHieu = 1;
                }
                else
                {
                    u.BiVoHieu = 0;
                }
                bool flag = u.TOAN_Update_user_login_web_Toan();
                if (flag)
                {
                    lbMessage.Text = "Cập nhật thành công";
                    LayDS_Typenews();
                }
                else
                {
                    lbMessage.Text = "Lỗi không cập nhật được dữ liệu";
                }
            }
            else
            {
                if (cboGIANGVIEN.Text.Trim().Length == 0)
                {
                    lbMessage.Text = "Vui lòng chọn giáo viên";
                    return;
                }
                if (txtUSER.Text.Trim().Length == 0)
                {
                    lbMessage.Text = "Vui lòng nhập tên user";
                    return;
                }
                if (txtPASS.Text.Trim().Length == 0)
                {
                    lbMessage.Text = "Vui lòng nhập mật khẩu";
                    return;
                }
                if (txtXACNHAN.Text.Trim().Length == 0)
                {
                    lbMessage.Text = "Vui lòng nhập xác nhận mật khẩu";
                    return;
                }
                if (txtXACNHAN.Text.Trim() != txtPASS.Text.Trim())
                {
                    lbMessage.Text = "Xác nhận mật khẩu không trùng với mật khẩu";
                    return;
                }
                string GiaoVienID = cboGIANGVIEN.SelectedValue;
                string Username = txtUSER.Text.Trim();
                string pass = BitConverter.ToString(encryptData(txtPASS.Text)).Replace("-", "").ToLower();
                u.IDLogin = Request.QueryString["ID"].ToString();
                u.GiaoVienID = GiaoVienID.ToString();
                u.Username = Username.ToString();
                u.pass = pass.ToString();
                if (chkIS_LOGIN.Checked == true)
                {
                    u.BiVoHieu = 1;
                }
                else
                {
                    u.BiVoHieu = 0;
                }
                u.LoaiNguoiDung_ID = 0;
                u.spid = 0;

                DataSet ds_check = u.TOAN_Check(cboGIANGVIEN.SelectedValue, txtUSER.Text);
                if (ds_check != null && ds_check.Tables[0].Rows.Count > 0)
                {
                    lbMessage.Text = "Tên đăng nhập này đã tồn tại.";
                }
                bool flag = u.Insert_user_login_web_Toan();
                if (flag)
                {
                    lbMessage.Text = "Thêm mới thành công";
                    LayDS_Typenews();
                }
                else
                {
                    lbMessage.Text = "Lỗi không thêm mới được dữ liệu";
                }
            }
        }

        protected void btnThem_MOi_Click(object sender, EventArgs e)
        {
            txtUSER.Text = "";
            txtPASS.Text = "";
            txtXACNHAN.Text = "";
            chkIS_LOGIN.Checked = true;
        }
    }
}